package com.baizhi.day02;

public class DriverDemo {
    public static void main(String[] args) {

        //创建对象，
        //因为Driver目前只提供了含参构造，所以，只能调用含参构造
        Driver d = new Driver("宋江",20,'男',"鲁001");
        //d.drive();
        System.out.println("司机"+d.name+"的年龄是："+d.age);

        //调用的无参构造
        Driver d2 = new Driver();


    }
}


//定义一个司机类
class Driver{
    String name; //姓名
    int age; //年龄
    char genner; //性别
    String no;   //驾照号

    //构造方法/构造函数/构造器
    //没有参数列表的构造方法叫做无参构造，不管你写或者不写，这个类在编译完成之后都会自动提供一个无参构造
    //如果你添加了含参构造，那么编译期不会再提供无参构造
    //与类名一样，没有返回值类型
    // 利用new关键字来调用构造方法创建对象
    public Driver(){}

   //含参构造
    //构造函数可以重载
    // 在构造函数中可以进行一些初始化操作和其他操作（对不合理值进行限制）
    public Driver(String n,int a,char g,String c){
        name = n;
        if(a < 18){
            System.out.println("司机的年龄必须大于18岁");
            //构造方法中可以利用return来规避不合理的值，return的作用是结束当前方法
            return;
        }
        age = a;
        genner = g;
        no = c;
    }

    void drive(){
        System.out.println(genner+"性司机"+name+"在驾驶");
    }
}
